# 作者：陈睿-cruise
# 2024年02月21日12时40分41秒
# 2979386061@qq.com
# 6 有8个整数，其中有4个数出现了两次，2个数出现了一次， 找出出现了一次的那2个数
def find_single_numbers(nums):
    # 对所有数字进行异或运算
    xor_result = 0
    for num in nums:
        xor_result ^= num

    # 找到异或结果中的一个非零位
    # 以此位将数组中的数字分成两组
    # 一组包含该位为1的数字，另一组包含该位为0的数字
    mask = 1
    while xor_result & mask == 0:
        mask <<= 1

    # 对两组数字分别进行异或运算
    # 分别得到出现一次的两个数字
    num1, num2 = 0, 0
    for num in nums:
        if num & mask:
            num1 ^= num
        else:
            num2 ^= num

    return num1, num2

# 示例输入
nums = [4, 2, 4, 5, 2, 3, 3, 1]
result = find_single_numbers(nums)
print("出现一次的两个数为:", result)
print('3+4')